package student.aistar.day14;

/**
 * 泛型方法
 */
public class GenericMethodDemo {

    //非静态方法 - 无返回类型
    public <T> void test01(T t){
        System.out.println("test01..." + t);

    }

    //非静态方法 - 带返回类型
    public <E> E test02(E e){
        System.out.println("e: " + e);
        return e;
    }

    //静态方法
    public static <N> N test03(N n){
        System.out.println("n: " + n);
        return n;
    }

    public static void main(String[] args) {
        GenericMethodDemo m = new GenericMethodDemo();
        //如何确定到方法的参数T

        //JVM根据传入的方法的实参 - 拿到这个实参的类型 -> 方法的参数T
        m.test01(19);//Integer
        m.test01("十大");//String

        //调用带有返回类型
        String ok = m.test02("ok");
        System.out.println(ok);

        Integer t = m.test02(100);
        System.out.println(t);

        Integer s = GenericMethodDemo.test03(12);
        System.out.println(s);
    }
}
